CMAKE_MINIMUM_REQUIRED(VERSION 3.17)

IF (CMAKE_SYSTEM MATCHES "MANJARO")
    SET(THIRD_PARTY_GPRC ${CMAKE_SOURCE_DIR}/cmake/grpc/manjaro)

    IF (NOT TARGET THIRD::PARTY::GRPC::H)
        SET(GRPC_HEADS ${THIRD_PARTY_GPRC}/include)
        ADD_LIBRARY(THIRD::PARTY::GRPC::H OBJECT IMPORTED)
        TARGET_INCLUDE_DIRECTORIES(THIRD::PARTY::GRPC::H INTERFACE "${GRPC_HEADS}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::BAD::OPTIONAL::ACCESS)
        FIND_LIBRARY(GPRC_ABSL_BAD_OPTIONAL_ACCESS NAMES absl_bad_optional_access PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::BAD::OPTIONAL::ACCESS STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::BAD::OPTIONAL::ACCESS PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_BAD_OPTIONAL_ACCESS}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::BAD::VARIANT::ACCESS)
        FIND_LIBRARY(GPRC_ABSL_BAD_VARIANT_ACCESS NAMES absl_bad_variant_access PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::BAD::VARIANT::ACCESS STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::BAD::VARIANT::ACCESS PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_BAD_VARIANT_ACCESS}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::BASE)
        FIND_LIBRARY(GPRC_ABSL_BASE NAMES absl_base PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::BASE STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::BASE PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_BASE}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::CITY)
        FIND_LIBRARY(GPRC_ABSL_CITY NAMES absl_city PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::CITY STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::CITY PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_CITY}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::CIVIL::TIME)
        FIND_LIBRARY(GPRC_ABSL_CIVIL_TIME NAMES absl_civil_time PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::CIVIL::TIME STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::CIVIL::TIME PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_CIVIL_TIME}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::CORD)
        FIND_LIBRARY(GPRC_ABSL_CORD NAMES absl_cord PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::CORD STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::CORD PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_CORD}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::DEBUGGING::INTERNAL)
        FIND_LIBRARY(GPRC_ABSL_DEBUGGING_INTERNA NAMES absl_debugging_internal PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::DEBUGGING::INTERNAL STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::DEBUGGING::INTERNAL PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_DEBUGGING_INTERNA}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::DEMANGLE::INTERNAL)
        FIND_LIBRARY(GPRC_ABSL_DEMANGLE_INTERNAL NAMES absl_demangle_internal PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::DEMANGLE::INTERNAL STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::DEMANGLE::INTERNAL PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_DEMANGLE_INTERNAL}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::EXPONENTIAL::BIASED)
        FIND_LIBRARY(GPRC_ABSL_EXPONENTIAL_BIASED NAMES absl_exponential_biased PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::EXPONENTIAL::BIASED STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::EXPONENTIAL::BIASED PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_EXPONENTIAL_BIASED}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::GRAPHCYCLES::INTERNAL)
        FIND_LIBRARY(GPRC_ABSL_GRAPHCYCLES_INTERNAL NAMES absl_graphcycles_internal PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::GRAPHCYCLES::INTERNAL STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::GRAPHCYCLES::INTERNAL PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_GRAPHCYCLES_INTERNAL}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::HASH)
        FIND_LIBRARY(GPRC_ABSL_HASH NAMES absl_hash PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::HASH STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::HASH PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_HASH}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::HASHTABLEZ::SAMPLER)
        FIND_LIBRARY(GPRC_ABSL_HASHTABLEZ_SAMPLER NAMES absl_hashtablez_sampler PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::HASHTABLEZ::SAMPLER STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::HASHTABLEZ::SAMPLER PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_HASHTABLEZ_SAMPLER}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::INT128)
        FIND_LIBRARY(GPRC_ABSL_INT128 NAMES absl_int128 PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::INT128 STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::INT128 PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_INT128}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::LOG::SEVERITY)
        FIND_LIBRARY(GPRC_ABSL_LOG_SEVERITY NAMES absl_log_severity PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::LOG::SEVERITY STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::LOG::SEVERITY PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_LOG_SEVERITY}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::MALLOC::INTERNAL)
        FIND_LIBRARY(GPRC_ABSL_MALLOC_INTERNAL NAMES absl_malloc_internal PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::MALLOC::INTERNAL STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::MALLOC::INTERNAL PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_MALLOC_INTERNAL}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::RAW::HASH::SET)
        FIND_LIBRARY(GPRC_ABSL_RAW_HASH_SET NAMES absl_raw_hash_set PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::RAW::HASH::SET STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::RAW::HASH::SET PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_RAW_HASH_SET}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::RAW::LOGGING::INTERNAL)
        FIND_LIBRARY(GPRC_ABSL_RAW_LOGGING_INTERNAL NAMES absl_raw_logging_internal PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::RAW::LOGGING::INTERNAL STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::RAW::LOGGING::INTERNAL PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_RAW_LOGGING_INTERNAL}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::SPINLOCK::WAIT)
        FIND_LIBRARY(GPRC_ABSL_SPINLOCK_WAIT NAMES absl_spinlock_wait PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::SPINLOCK::WAIT STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::SPINLOCK::WAIT PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_SPINLOCK_WAIT}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::STACKTRACE)
        FIND_LIBRARY(GPRC_ABSL_STACKTRACE NAMES absl_stacktrace PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::STACKTRACE STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::STACKTRACE PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_STACKTRACE}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::STATUS)
        FIND_LIBRARY(GPRC_ABSL_STATUS NAMES absl_status PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::STATUS STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::STATUS PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_STATUS}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::STATUSOR)
        FIND_LIBRARY(GPRC_ABSL_STATUSOR NAMES absl_statusor PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::STATUSOR STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::STATUSOR PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_STATUSOR}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::STR::FORMAT::INTERNAL)
        FIND_LIBRARY(GPRC_ABSL_STR_FORMAT_INTERNAL NAMES absl_str_format_internal PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::STR::FORMAT::INTERNAL STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::STR::FORMAT::INTERNAL PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_STR_FORMAT_INTERNAL}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::STRINGS::INTERNAL)
        FIND_LIBRARY(GPRC_ABSL_STRINGS_INTERNAL NAMES absl_strings_internal PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::STRINGS::INTERNAL STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::STRINGS::INTERNAL PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_STRINGS_INTERNAL}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::STRINGS)
        FIND_LIBRARY(GPRC_ABSL_STRINGS NAMES absl_strings PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::STRINGS STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::STRINGS PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_STRINGS}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::SYMBOLIZE)
        FIND_LIBRARY(GPRC_ABSL_SYMBOLIZE NAMES absl_symbolize PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::SYMBOLIZE STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::SYMBOLIZE PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_SYMBOLIZE}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::SYNCHRONIZATION)
        FIND_LIBRARY(GPRC_ABSL_SYNCHRONIZATION NAMES absl_synchronization PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::SYNCHRONIZATION STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::SYNCHRONIZATION PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_SYNCHRONIZATION}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::THROW::DELEGATE)
        FIND_LIBRARY(GPRC_ABSL_THROW_DELEGATE NAMES absl_throw_delegate PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::THROW::DELEGATE STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::THROW::DELEGATE PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_THROW_DELEGATE}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::TIME::ZONE)
        FIND_LIBRARY(GPRC_ABSL_TIME_ZONE NAMES absl_time_zone PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::TIME::ZONE STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::TIME::ZONE PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_TIME_ZONE}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::TIME)
        FIND_LIBRARY(GPRC_ABSL_TIME NAMES absl_time PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::TIME STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::TIME PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_TIME}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ADDRESS::SORTING)
        FIND_LIBRARY(GPRC_ADDRESS_SORTING NAMES address_sorting PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ADDRESS::SORTING STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ADDRESS::SORTING PROPERTIES IMPORTED_LOCATION "${GPRC_ADDRESS_SORTING}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::CARES)
        FIND_LIBRARY(GPRC_CARES NAMES cares PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::CARES STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::CARES PROPERTIES IMPORTED_LOCATION "${GPRC_CARES}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::CRYPTO)
        FIND_LIBRARY(GPRC_CRYPTO NAMES crypto PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::CRYPTO STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::CRYPTO PROPERTIES IMPORTED_LOCATION "${GPRC_CRYPTO}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GPR)
        FIND_LIBRARY(GPRC_GPR NAMES gpr PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GPR STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GPR PROPERTIES IMPORTED_LOCATION "${GPRC_GPR}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GRPC::PLUGIN::SUPPORT)
        FIND_LIBRARY(GPRC_GRPC_PLUGIN_SUPPORT NAMES grpc_plugin_support PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GRPC::PLUGIN::SUPPORT STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GRPC::PLUGIN::SUPPORT PROPERTIES IMPORTED_LOCATION "${GPRC_GRPC_PLUGIN_SUPPORT}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GRPC::UNSECURE)
        FIND_LIBRARY(GPRC_GRPC_UNSECURE NAMES grpc_unsecure PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GRPC::UNSECURE STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GRPC::UNSECURE PROPERTIES IMPORTED_LOCATION "${GPRC_GRPC_UNSECURE}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GRPC)
        FIND_LIBRARY(GPRC_GRPC NAMES grpc PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GRPC STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GRPC PROPERTIES IMPORTED_LOCATION "${GPRC_GRPC}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GRPCXX::ALTS)
        FIND_LIBRARY(GPRC_GRPCXX_ALTS NAMES grpc++_alts PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GRPCXX::ALTS STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GRPCXX::ALTS PROPERTIES IMPORTED_LOCATION "${GPRC_GRPCXX_ALTS}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GRPCXX::ERROR::DETAILS)
        FIND_LIBRARY(GPRC_GRPCXX_ERROR_DETAILS NAMES grpc++_error_details PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GRPCXX::ERROR::DETAILS STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GRPCXX::ERROR::DETAILS PROPERTIES IMPORTED_LOCATION "${GPRC_GRPCXX_ERROR_DETAILS}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GRPCXX_REFLECTION)
        FIND_LIBRARY(GPRC_GRPCXX_REFLECTION NAMES grpc++_reflection PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GRPCXX_REFLECTION STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GRPCXX_REFLECTION PROPERTIES IMPORTED_LOCATION "${GPRC_GRPCXX_REFLECTION}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GRPCXX::UNSECURE)
        FIND_LIBRARY(GPRC_GRPCXX_UNSECURE NAMES grpc++_unsecure PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GRPCXX::UNSECURE STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GRPCXX::UNSECURE PROPERTIES IMPORTED_LOCATION "${GPRC_GRPCXX_UNSECURE}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GRPCXX)
        FIND_LIBRARY(GPRC_GRPCXX NAMES grpc++ PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GRPCXX STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GRPCXX PROPERTIES IMPORTED_LOCATION "${GPRC_GRPCXX}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GRPCPP::CHANNELZ)
        FIND_LIBRARY(GPRC_GRPCPP_CHANNELZ NAMES grpcpp_channelz PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GRPCPP::CHANNELZ STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GRPCPP::CHANNELZ PROPERTIES IMPORTED_LOCATION "${GPRC_GRPCPP_CHANNELZ}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::PROTOBUF::LITE)
        FIND_LIBRARY(GPRC_PROTOBUF_LITE NAMES protobuf-lite PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::PROTOBUF::LITE STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::PROTOBUF::LITE PROPERTIES IMPORTED_LOCATION "${GPRC_PROTOBUF_LITE}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::PROTOBUF)
        FIND_LIBRARY(GPRC_PROTOBUF NAMES protobuf PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::PROTOBUF STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::PROTOBUF PROPERTIES IMPORTED_LOCATION "${GPRC_PROTOBUF}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::PROTOC)
        FIND_LIBRARY(GPRC_PROTOC NAMES protoc PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::PROTOC STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::PROTOC PROPERTIES IMPORTED_LOCATION "${GPRC_PROTOC}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::RE2)
        FIND_LIBRARY(GPRC_RE2 NAMES re2 PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::RE2 STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::RE2 PROPERTIES IMPORTED_LOCATION "${GPRC_RE2}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::SSL)
        FIND_LIBRARY(GPRC_SSL NAMES ssl PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::SSL STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::SSL PROPERTIES IMPORTED_LOCATION "${GPRC_SSL}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::UPB)
        FIND_LIBRARY(GPRC_UPB NAMES upb PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::UPB STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::UPB PROPERTIES IMPORTED_LOCATION "${GPRC_UPB}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::Z)
        FIND_LIBRARY(GPRC_Z NAMES z PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::Z STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::Z PROPERTIES IMPORTED_LOCATION "${GPRC_Z}")
    ENDIF ()
ELSEIF (CMAKE_SYSTEM MATCHES "Windows")
    SET(THIRD_PARTY_GPRC ${CMAKE_SOURCE_DIR}/cmake/grpc/windows)

    IF (NOT TARGET THIRD::PARTY::GRPC::H)
        SET(GRPC_HEADS ${THIRD_PARTY_GPRC}/include)
        ADD_LIBRARY(THIRD::PARTY::GRPC::H OBJECT IMPORTED)
        TARGET_INCLUDE_DIRECTORIES(THIRD::PARTY::GRPC::H INTERFACE "${GRPC_HEADS}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::BAD::OPTIONAL::ACCESS)
        FIND_LIBRARY(GPRC_ABSL_BAD_OPTIONAL_ACCESS NAMES absl_bad_optional_access PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::BAD::OPTIONAL::ACCESS STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::BAD::OPTIONAL::ACCESS PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_BAD_OPTIONAL_ACCESS}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::BAD::VARIANT::ACCESS)
        FIND_LIBRARY(GPRC_ABSL_BAD_VARIANT_ACCESS NAMES absl_bad_variant_access PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::BAD::VARIANT::ACCESS STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::BAD::VARIANT::ACCESS PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_BAD_VARIANT_ACCESS}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::BASE)
        FIND_LIBRARY(GPRC_ABSL_BASE NAMES absl_base PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::BASE STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::BASE PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_BASE}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::CITY)
        FIND_LIBRARY(GPRC_ABSL_CITY NAMES absl_city PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::CITY STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::CITY PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_CITY}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::CIVIL::TIME)
        FIND_LIBRARY(GPRC_ABSL_CIVIL_TIME NAMES absl_civil_time PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::CIVIL::TIME STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::CIVIL::TIME PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_CIVIL_TIME}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::CORD)
        FIND_LIBRARY(GPRC_ABSL_CORD NAMES absl_cord PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::CORD STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::CORD PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_CORD}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::DEBUGGING::INTERNAL)
        FIND_LIBRARY(GPRC_ABSL_DEBUGGING_INTERNA NAMES absl_debugging_internal PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::DEBUGGING::INTERNAL STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::DEBUGGING::INTERNAL PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_DEBUGGING_INTERNA}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::DEMANGLE::INTERNAL)
        FIND_LIBRARY(GPRC_ABSL_DEMANGLE_INTERNAL NAMES absl_demangle_internal PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::DEMANGLE::INTERNAL STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::DEMANGLE::INTERNAL PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_DEMANGLE_INTERNAL}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::EXPONENTIAL::BIASED)
        FIND_LIBRARY(GPRC_ABSL_EXPONENTIAL_BIASED NAMES absl_exponential_biased PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::EXPONENTIAL::BIASED STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::EXPONENTIAL::BIASED PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_EXPONENTIAL_BIASED}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::GRAPHCYCLES::INTERNAL)
        FIND_LIBRARY(GPRC_ABSL_GRAPHCYCLES_INTERNAL NAMES absl_graphcycles_internal PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::GRAPHCYCLES::INTERNAL STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::GRAPHCYCLES::INTERNAL PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_GRAPHCYCLES_INTERNAL}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::HASH)
        FIND_LIBRARY(GPRC_ABSL_HASH NAMES absl_hash PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::HASH STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::HASH PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_HASH}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::HASHTABLEZ::SAMPLER)
        FIND_LIBRARY(GPRC_ABSL_HASHTABLEZ_SAMPLER NAMES absl_hashtablez_sampler PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::HASHTABLEZ::SAMPLER STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::HASHTABLEZ::SAMPLER PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_HASHTABLEZ_SAMPLER}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::INT128)
        FIND_LIBRARY(GPRC_ABSL_INT128 NAMES absl_int128 PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::INT128 STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::INT128 PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_INT128}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::LOG::SEVERITY)
        FIND_LIBRARY(GPRC_ABSL_LOG_SEVERITY NAMES absl_log_severity PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::LOG::SEVERITY STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::LOG::SEVERITY PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_LOG_SEVERITY}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::MALLOC::INTERNAL)
        FIND_LIBRARY(GPRC_ABSL_MALLOC_INTERNAL NAMES absl_malloc_internal PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::MALLOC::INTERNAL STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::MALLOC::INTERNAL PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_MALLOC_INTERNAL}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::RAW::HASH::SET)
        FIND_LIBRARY(GPRC_ABSL_RAW_HASH_SET NAMES absl_raw_hash_set PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::RAW::HASH::SET STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::RAW::HASH::SET PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_RAW_HASH_SET}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::RAW::LOGGING::INTERNAL)
        FIND_LIBRARY(GPRC_ABSL_RAW_LOGGING_INTERNAL NAMES absl_raw_logging_internal PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::RAW::LOGGING::INTERNAL STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::RAW::LOGGING::INTERNAL PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_RAW_LOGGING_INTERNAL}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::SPINLOCK::WAIT)
        FIND_LIBRARY(GPRC_ABSL_SPINLOCK_WAIT NAMES absl_spinlock_wait PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::SPINLOCK::WAIT STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::SPINLOCK::WAIT PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_SPINLOCK_WAIT}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::STACKTRACE)
        FIND_LIBRARY(GPRC_ABSL_STACKTRACE NAMES absl_stacktrace PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::STACKTRACE STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::STACKTRACE PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_STACKTRACE}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::STATUS)
        FIND_LIBRARY(GPRC_ABSL_STATUS NAMES absl_status PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::STATUS STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::STATUS PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_STATUS}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::STATUSOR)
        FIND_LIBRARY(GPRC_ABSL_STATUSOR NAMES absl_statusor PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::STATUSOR STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::STATUSOR PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_STATUSOR}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::STR::FORMAT::INTERNAL)
        FIND_LIBRARY(GPRC_ABSL_STR_FORMAT_INTERNAL NAMES absl_str_format_internal PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::STR::FORMAT::INTERNAL STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::STR::FORMAT::INTERNAL PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_STR_FORMAT_INTERNAL}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::STRINGS::INTERNAL)
        FIND_LIBRARY(GPRC_ABSL_STRINGS_INTERNAL NAMES absl_strings_internal PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::STRINGS::INTERNAL STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::STRINGS::INTERNAL PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_STRINGS_INTERNAL}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::STRINGS)
        FIND_LIBRARY(GPRC_ABSL_STRINGS NAMES absl_strings PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::STRINGS STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::STRINGS PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_STRINGS}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::SYMBOLIZE)
        FIND_LIBRARY(GPRC_ABSL_SYMBOLIZE NAMES absl_symbolize PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::SYMBOLIZE STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::SYMBOLIZE PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_SYMBOLIZE}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::SYNCHRONIZATION)
        FIND_LIBRARY(GPRC_ABSL_SYNCHRONIZATION NAMES absl_synchronization PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::SYNCHRONIZATION STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::SYNCHRONIZATION PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_SYNCHRONIZATION}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::THROW::DELEGATE)
        FIND_LIBRARY(GPRC_ABSL_THROW_DELEGATE NAMES absl_throw_delegate PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::THROW::DELEGATE STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::THROW::DELEGATE PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_THROW_DELEGATE}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::TIME::ZONE)
        FIND_LIBRARY(GPRC_ABSL_TIME_ZONE NAMES absl_time_zone PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::TIME::ZONE STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::TIME::ZONE PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_TIME_ZONE}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ABSL::TIME)
        FIND_LIBRARY(GPRC_ABSL_TIME NAMES absl_time PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ABSL::TIME STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ABSL::TIME PROPERTIES IMPORTED_LOCATION "${GPRC_ABSL_TIME}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::ADDRESS::SORTING)
        FIND_LIBRARY(GPRC_ADDRESS_SORTING NAMES address_sorting PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::ADDRESS::SORTING STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::ADDRESS::SORTING PROPERTIES IMPORTED_LOCATION "${GPRC_ADDRESS_SORTING}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::CARES)
        FIND_LIBRARY(GPRC_CARES NAMES cares PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::CARES STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::CARES PROPERTIES IMPORTED_LOCATION "${GPRC_CARES}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::CRYPTO)
        FIND_LIBRARY(GPRC_CRYPTO NAMES crypto PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::CRYPTO STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::CRYPTO PROPERTIES IMPORTED_LOCATION "${GPRC_CRYPTO}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GPR)
        FIND_LIBRARY(GPRC_GPR NAMES gpr PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GPR STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GPR PROPERTIES IMPORTED_LOCATION "${GPRC_GPR}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GRPC::PLUGIN::SUPPORT)
        FIND_LIBRARY(GPRC_GRPC_PLUGIN_SUPPORT NAMES grpc_plugin_support PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GRPC::PLUGIN::SUPPORT STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GRPC::PLUGIN::SUPPORT PROPERTIES IMPORTED_LOCATION "${GPRC_GRPC_PLUGIN_SUPPORT}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GRPC::UNSECURE)
        FIND_LIBRARY(GPRC_GRPC_UNSECURE NAMES grpc_unsecure PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GRPC::UNSECURE STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GRPC::UNSECURE PROPERTIES IMPORTED_LOCATION "${GPRC_GRPC_UNSECURE}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GRPC)
        FIND_LIBRARY(GPRC_GRPC NAMES grpc PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GRPC STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GRPC PROPERTIES IMPORTED_LOCATION "${GPRC_GRPC}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GRPCXX::ALTS)
        FIND_LIBRARY(GPRC_GRPCXX_ALTS NAMES grpc++_alts PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GRPCXX::ALTS STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GRPCXX::ALTS PROPERTIES IMPORTED_LOCATION "${GPRC_GRPCXX_ALTS}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GRPCXX::ERROR::DETAILS)
        FIND_LIBRARY(GPRC_GRPCXX_ERROR_DETAILS NAMES grpc++_error_details PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GRPCXX::ERROR::DETAILS STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GRPCXX::ERROR::DETAILS PROPERTIES IMPORTED_LOCATION "${GPRC_GRPCXX_ERROR_DETAILS}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GRPCXX_REFLECTION)
        FIND_LIBRARY(GPRC_GRPCXX_REFLECTION NAMES grpc++_reflection PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GRPCXX_REFLECTION STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GRPCXX_REFLECTION PROPERTIES IMPORTED_LOCATION "${GPRC_GRPCXX_REFLECTION}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GRPCXX::UNSECURE)
        FIND_LIBRARY(GPRC_GRPCXX_UNSECURE NAMES grpc++_unsecure PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GRPCXX::UNSECURE STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GRPCXX::UNSECURE PROPERTIES IMPORTED_LOCATION "${GPRC_GRPCXX_UNSECURE}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GRPCXX)
        FIND_LIBRARY(GPRC_GRPCXX NAMES grpc++ PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GRPCXX STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GRPCXX PROPERTIES IMPORTED_LOCATION "${GPRC_GRPCXX}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::GRPCPP::CHANNELZ)
        FIND_LIBRARY(GPRC_GRPCPP_CHANNELZ NAMES grpcpp_channelz PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::GRPCPP::CHANNELZ STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::GRPCPP::CHANNELZ PROPERTIES IMPORTED_LOCATION "${GPRC_GRPCPP_CHANNELZ}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::PROTOBUF::LITE)
        FIND_LIBRARY(GPRC_PROTOBUF_LITE NAMES libprotobuf-lite PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::PROTOBUF::LITE STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::PROTOBUF::LITE PROPERTIES IMPORTED_LOCATION "${GPRC_PROTOBUF_LITE}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::PROTOBUF)
        FIND_LIBRARY(GPRC_PROTOBUF NAMES libprotobuf PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::PROTOBUF STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::PROTOBUF PROPERTIES IMPORTED_LOCATION "${GPRC_PROTOBUF}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::PROTOC)
        FIND_LIBRARY(GPRC_PROTOC NAMES libprotoc PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::PROTOC STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::PROTOC PROPERTIES IMPORTED_LOCATION "${GPRC_PROTOC}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::RE2)
        FIND_LIBRARY(GPRC_RE2 NAMES re2 PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::RE2 STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::RE2 PROPERTIES IMPORTED_LOCATION "${GPRC_RE2}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::SSL)
        FIND_LIBRARY(GPRC_SSL NAMES ssl PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::SSL STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::SSL PROPERTIES IMPORTED_LOCATION "${GPRC_SSL}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::UPB)
        FIND_LIBRARY(GPRC_UPB NAMES upb PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::UPB STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::UPB PROPERTIES IMPORTED_LOCATION "${GPRC_UPB}")
    ENDIF ()

    IF (NOT TARGET THIRD::PARTY::GPRC::Z)
        FIND_LIBRARY(GPRC_Z NAMES zlibstatic PATHS ${THIRD_PARTY_GPRC}/lib NO_DEFAULT_PATH)
        ADD_LIBRARY(THIRD::PARTY::GPRC::Z STATIC IMPORTED)
        SET_TARGET_PROPERTIES(THIRD::PARTY::GPRC::Z PROPERTIES IMPORTED_LOCATION "${GPRC_Z}")
    ENDIF ()
ENDIF ()